/**
 * <copyright>
 * </copyright>
 *
 * 
 */
package de.claaswilke.presents.resource.presents.grammar;

/**
 * This class provides the follow sets for all terminals of the grammar. These
 * sets are used during code completion.
 */
public class PresentsFollowSetProvider {
	
	public final static de.claaswilke.presents.resource.presents.IPresentsExpectedElement TERMINALS[] = new de.claaswilke.presents.resource.presents.IPresentsExpectedElement[17];
	
	public final static org.eclipse.emf.ecore.EStructuralFeature[] FEATURES = new org.eclipse.emf.ecore.EStructuralFeature[4];
	
	public final static de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature[] LINKS = new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature[17];
	
	public final static de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature[] EMPTY_LINK_ARRAY = new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature[0];
	
	public static void initializeTerminals0() {
		TERMINALS[0] = new de.claaswilke.presents.resource.presents.mopp.PresentsExpectedCsString(de.claaswilke.presents.resource.presents.grammar.PresentsGrammarInformationProvider.PRESENTS_0_0_0_0);
		TERMINALS[1] = new de.claaswilke.presents.resource.presents.mopp.PresentsExpectedCsString(de.claaswilke.presents.resource.presents.grammar.PresentsGrammarInformationProvider.PRESENTS_0_0_0_2);
		TERMINALS[2] = new de.claaswilke.presents.resource.presents.mopp.PresentsExpectedStructuralFeature(de.claaswilke.presents.resource.presents.grammar.PresentsGrammarInformationProvider.PRESENTS_1_0_0_0);
		TERMINALS[3] = new de.claaswilke.presents.resource.presents.mopp.PresentsExpectedCsString(de.claaswilke.presents.resource.presents.grammar.PresentsGrammarInformationProvider.PRESENTS_0_0_0_4_0_0_2);
		TERMINALS[4] = new de.claaswilke.presents.resource.presents.mopp.PresentsExpectedCsString(de.claaswilke.presents.resource.presents.grammar.PresentsGrammarInformationProvider.PRESENTS_0_0_0_6);
		TERMINALS[5] = new de.claaswilke.presents.resource.presents.mopp.PresentsExpectedStructuralFeature(de.claaswilke.presents.resource.presents.grammar.PresentsGrammarInformationProvider.PRESENTS_2_0_0_0);
		TERMINALS[6] = new de.claaswilke.presents.resource.presents.mopp.PresentsExpectedCsString(de.claaswilke.presents.resource.presents.grammar.PresentsGrammarInformationProvider.PRESENTS_3_0_0_0);
		TERMINALS[7] = new de.claaswilke.presents.resource.presents.mopp.PresentsExpectedCsString(de.claaswilke.presents.resource.presents.grammar.PresentsGrammarInformationProvider.PRESENTS_2_0_0_2);
		TERMINALS[8] = new de.claaswilke.presents.resource.presents.mopp.PresentsExpectedStructuralFeature(de.claaswilke.presents.resource.presents.grammar.PresentsGrammarInformationProvider.PRESENTS_2_0_0_3_0_0_0);
		TERMINALS[9] = new de.claaswilke.presents.resource.presents.mopp.PresentsExpectedStructuralFeature(de.claaswilke.presents.resource.presents.grammar.PresentsGrammarInformationProvider.PRESENTS_2_0_0_4);
		TERMINALS[10] = new de.claaswilke.presents.resource.presents.mopp.PresentsExpectedCsString(de.claaswilke.presents.resource.presents.grammar.PresentsGrammarInformationProvider.PRESENTS_2_0_0_3_0_0_2);
		TERMINALS[11] = new de.claaswilke.presents.resource.presents.mopp.PresentsExpectedCsString(de.claaswilke.presents.resource.presents.grammar.PresentsGrammarInformationProvider.PRESENTS_3_0_0_2);
		TERMINALS[12] = new de.claaswilke.presents.resource.presents.mopp.PresentsExpectedStructuralFeature(de.claaswilke.presents.resource.presents.grammar.PresentsGrammarInformationProvider.PRESENTS_3_0_0_4);
		TERMINALS[13] = new de.claaswilke.presents.resource.presents.mopp.PresentsExpectedCsString(de.claaswilke.presents.resource.presents.grammar.PresentsGrammarInformationProvider.PRESENTS_3_0_0_5);
		TERMINALS[14] = new de.claaswilke.presents.resource.presents.mopp.PresentsExpectedStructuralFeature(de.claaswilke.presents.resource.presents.grammar.PresentsGrammarInformationProvider.PRESENTS_4_0_0_0_0_0_0);
		TERMINALS[15] = new de.claaswilke.presents.resource.presents.mopp.PresentsExpectedStructuralFeature(de.claaswilke.presents.resource.presents.grammar.PresentsGrammarInformationProvider.PRESENTS_4_0_0_1);
		TERMINALS[16] = new de.claaswilke.presents.resource.presents.mopp.PresentsExpectedCsString(de.claaswilke.presents.resource.presents.grammar.PresentsGrammarInformationProvider.PRESENTS_3_0_0_7_0_0_2);
	}
	
	public static void initializeTerminals() {
		initializeTerminals0();
	}
	
	public static void initializeFeatures0() {
		FEATURES[0] = de.claaswilke.presents.PresentsPackage.eINSTANCE.getPresentGroup().getEStructuralFeature(de.claaswilke.presents.PresentsPackage.PRESENT_GROUP__PERSONS);
		FEATURES[1] = de.claaswilke.presents.PresentsPackage.eINSTANCE.getPresentGroup().getEStructuralFeature(de.claaswilke.presents.PresentsPackage.PRESENT_GROUP__CONFLICTS);
		FEATURES[2] = de.claaswilke.presents.PresentsPackage.eINSTANCE.getPresentGroup().getEStructuralFeature(de.claaswilke.presents.PresentsPackage.PRESENT_GROUP__PAST_PRESENTS);
		FEATURES[3] = de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresent().getEStructuralFeature(de.claaswilke.presents.PresentsPackage.PAST_PRESENT__TO);
	}
	
	public static void initializeFeatures() {
		initializeFeatures0();
	}
	
	public static void initializeLinks0() {
		LINKS[0] = new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPerson(), FEATURES[0]);
		LINKS[1] = new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPerson(), FEATURES[0]);
		LINKS[2] = new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPerson(), FEATURES[0]);
		LINKS[3] = new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getConflict(), FEATURES[1]);
		LINKS[4] = new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresent(), FEATURES[2]);
		LINKS[5] = new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getConflict(), FEATURES[1]);
		LINKS[6] = new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresent(), FEATURES[2]);
		LINKS[7] = new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresent(), FEATURES[2]);
		LINKS[8] = new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getConflict(), FEATURES[1]);
		LINKS[9] = new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresent(), FEATURES[2]);
		LINKS[10] = new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresentRule(), FEATURES[3]);
		LINKS[11] = new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresentRule(), FEATURES[3]);
		LINKS[12] = new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresentRule(), FEATURES[3]);
		LINKS[13] = new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresentRule(), FEATURES[3]);
		LINKS[14] = new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresentRule(), FEATURES[3]);
		LINKS[15] = new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresentRule(), FEATURES[3]);
		LINKS[16] = new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresent(), FEATURES[2]);
	}
	
	public static void initializeLinks() {
		initializeLinks0();
	}
	
	public static void wire0() {
		TERMINALS[0].addFollower(TERMINALS[1], EMPTY_LINK_ARRAY);
		TERMINALS[1].addFollower(TERMINALS[2], new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature[] {new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPerson(), FEATURES[0]), });
		TERMINALS[3].addFollower(TERMINALS[2], new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature[] {new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPerson(), FEATURES[0]), });
		TERMINALS[4].addFollower(TERMINALS[5], new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature[] {new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getConflict(), FEATURES[1]), });
		TERMINALS[4].addFollower(TERMINALS[6], new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature[] {new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresent(), FEATURES[2]), });
		TERMINALS[2].addFollower(TERMINALS[3], EMPTY_LINK_ARRAY);
		TERMINALS[5].addFollower(TERMINALS[7], EMPTY_LINK_ARRAY);
		TERMINALS[7].addFollower(TERMINALS[8], EMPTY_LINK_ARRAY);
		TERMINALS[7].addFollower(TERMINALS[9], EMPTY_LINK_ARRAY);
		TERMINALS[8].addFollower(TERMINALS[10], EMPTY_LINK_ARRAY);
		TERMINALS[10].addFollower(TERMINALS[8], EMPTY_LINK_ARRAY);
		TERMINALS[10].addFollower(TERMINALS[9], EMPTY_LINK_ARRAY);
		TERMINALS[9].addFollower(TERMINALS[5], new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature[] {new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getConflict(), FEATURES[1]), });
		TERMINALS[9].addFollower(TERMINALS[6], new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature[] {new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresent(), FEATURES[2]), });
		TERMINALS[6].addFollower(TERMINALS[11], EMPTY_LINK_ARRAY);
		TERMINALS[11].addFollower(TERMINALS[12], EMPTY_LINK_ARRAY);
		TERMINALS[12].addFollower(TERMINALS[13], EMPTY_LINK_ARRAY);
		TERMINALS[13].addFollower(TERMINALS[14], new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature[] {new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresentRule(), FEATURES[3]), });
		TERMINALS[13].addFollower(TERMINALS[15], new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature[] {new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresentRule(), FEATURES[3]), });
		TERMINALS[16].addFollower(TERMINALS[14], new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature[] {new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresentRule(), FEATURES[3]), });
		TERMINALS[16].addFollower(TERMINALS[15], new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature[] {new de.claaswilke.presents.resource.presents.mopp.PresentsContainedFeature(de.claaswilke.presents.PresentsPackage.eINSTANCE.getPastPresentRule(), FEATURES[3]), });
		TERMINALS[14].addFollower(TERMINALS[15], EMPTY_LINK_ARRAY);
		TERMINALS[15].addFollower(TERMINALS[16], EMPTY_LINK_ARRAY);
	}
	
	public static void wire() {
		wire0();
	}
	
	static {
		// initialize the arrays
		initializeTerminals();
		initializeFeatures();
		initializeLinks();
		// wire the terminals
		wire();
	}
}
